﻿namespace PrimeFactor
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入一个数字大于1的数字：");
            string input;
            int num;
            while (true)
            {
                // 处理输入
                while ((input = Console.ReadLine()) == "") ;
                if (input == "q")
                {
                    break;
                }
                try
                {
                    num = int.Parse(input);
                    if (!(input == "") && num < 2)
                        throw new Exception("");

                    // 分解质因数
                    List<int> res = new List<int>();
                    for (int i = 2; i * i <= num; i++)
                    {
                        if (num % i == 0)
                        {
                            while (num % i == 0) num /= i;
                            res.Add(i);
                        }
                    }
                    if (num != 1)
                    {
                        res.Add(num);
                    }

                    // 输出
                    Console.Write("质因数为：");
                    res.ForEach(i =>
                    {
                        Console.Write(i.ToString() + " ");
                    });
                    Console.WriteLine();
                }
                catch (Exception) {
                    Console.WriteLine("输入数据不合法，请重新输入！");
                }

                
            }
        }
    }
}
